1

Pengantar Agen Penyelesai Masalah

PolyU COMP5511Lecture 2
00:00

Dari Refleks ke Perencanaan

Dalam evolusi desain agen, kita beralih dari Agen Refleks, yang memetakan persepsi secara langsung ke tindakan berdasarkan aturan sederhana (misalnya, "Jika mobil di depan mengerem, mulai mengerem"), menuju Agen Penyelesai Masalah. Agen refleks beroperasi pada konteks langsung, sedangkan agen penyelesai masalah bersifat Berbasis Tujuan. Mereka mempertimbangkan konsekuensi tindakan di masa depan untuk menemukan urutan yang memenuhi tujuan tertentu.

  • Agen Refleks: $Action = Function(Percept)$
  • Agen Perencana: $Action\_Sequence = Search(State, Goal)$

Representasi Keadaan Atomik

Pada tingkat fundamental ini, agen menggunakan Representasi Atomik. Ini berarti keadaan dunia diperlakukan sebagai kotak hitam—sebuah simpul tunggal tanpa struktur internal yang terlihat oleh algoritma pencarian. Agen hanya menalar tentang:

  • Keadaan ($S$): Cuplikan dari lingkungan.
  • Tindakan ($A$): Transisi antar keadaan.
  • Uji Tujuan: Pemeriksaan boolean apakah keadaan $s \in S_{goal}$.

Siklus Penyelesaian Masalah

Agen penyelesai masalah mengikuti siklus empat langkah yang khas untuk menavigasi lingkungan:

  1. Formulasi Tujuan: Menentukan tujuan mana yang akan dikejar berdasarkan situasi saat ini.
  2. Formulasi Masalah: Mengabstraksi dunia nyata menjadi model matematis (Keadaan dan Tindakan).
  3. Pencarian: Mensimulasikan urutan tindakan untuk menemukan jalur optimal.
  4. Eksekusi: Melakukan tindakan yang ditemukan selama fase pencarian tanpa pertimbangan lebih lanjut (dengan asumsi lingkungan statis).
Implementasi Python (agent_types.py)
1
class ReflexAgent:
2
defact(self, percept):
3
# Direct mapping: Rule -> Action
4
return rules.get(percept, default_action)
5
6
class ProblemSolvingAgent:
7
def__init__(self):
8
self.seq = [] # Buffered action sequence
9
10
defact(self, percept):
11
# If we are mid-execution, continue
12
ifself.seq:
13
returnself.seq.pop(0)
14
15
# Otherwise, Plan (Search)
16
state = self.update_state(percept)
17
goal = self.formulate_goal(state)
18
problem = self.formulate_problem(state, goal)
19
20
# Search returns a list of actions
21
self.seq = search_algorithm(problem)
22
23
returnself.seq.pop(0)